package com.chixing.service.impl;

import com.chixing.mapper.StoreMapper;
import com.chixing.pojo.Store;
import com.chixing.pojo.StoreExample;
import com.chixing.service.StoreService;
import com.chixing.util.ServerResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class StoreServiceImpl implements StoreService {
    @Autowired
    private StoreMapper storeMapper;


    //多条件查询
    //表：Store
    //门店（名称+电话+城市+区域+详细地址+门店描述）
    @Override
    public ServerResponse getByConditions(String storeName, Long storeTelno, String storeAddressArea, String storeAddress, String storeDescribe) {
        StoreExample storeExample = new StoreExample();
        StoreExample.Criteria storecriteria = storeExample.createCriteria();

        if (storeName.equals("-1"))
            storeName = null;
        if (storeTelno == -1)
            storeTelno = null;
        if (storeAddressArea.equals("-1"))
            storeAddressArea = null;
        if (storeAddress.equals("-1"))
            storeAddress = null;
        if (storeDescribe.equals("-1"))
            storeDescribe = null;

        if (storeName != null)
            storecriteria.andStoreNameEqualTo(storeName);
        if (storeTelno != null)
            storecriteria.andStoreTelnoEqualTo(storeTelno);
        if (storeAddressArea != null)
            storecriteria.andStoreNameEqualTo(storeAddressArea);
        if (storeAddress != null)
            storecriteria.andStoreAddressEqualTo(storeAddress);
        if (storeDescribe != null)
            storecriteria.andStoreDescribeEqualTo(storeDescribe);
        List<Store> storeList = storeMapper.selectByExample(storeExample);
        System.out.println("storeList" + storeList.size());
        if (storeList.size() > 0)
            return ServerResponse.getSucccess(storeList);
        return ServerResponse.getFail(null);
    }

    @Override
    public ServerResponse getByStoreAddressArea(String storeAddressArea) {
        StoreExample storeExample = new StoreExample();
        storeExample.createCriteria().andStoreAddressAreaEqualTo(storeAddressArea);
        List<Store> storeList = storeMapper.selectByExample(storeExample);
        if (storeAddressArea != null)
            return ServerResponse.getSucccess(storeList);
        return ServerResponse.getFail(null);
    }

    @Override
    public ServerResponse getById(Integer storeId) {
        Store store = storeMapper.selectByPrimaryKey(storeId);
        if (store != null)
            return ServerResponse.getSucccess(store);
        return ServerResponse.getFail(null);
    }

    @Override
    public ServerResponse getByStoreName(String storeName) {
        StoreExample storeExample = new StoreExample();
        StoreExample.Criteria criteria = storeExample.createCriteria();
        criteria.andStoreNameEqualTo(storeName);
        Store store = storeMapper.selectByExample(storeExample).get(0);
        if (store != null)
            return ServerResponse.getSucccess(store);
        return ServerResponse.getFail(null);
    }

    @Override
    public ServerResponse getStoreByCity(String city) {
        StoreExample storeExample = new StoreExample();
        storeExample.createCriteria().andStoreAddressCityEqualTo(city);
        List<Store> stores = storeMapper.selectByExample(storeExample);
        if (stores.size() > 0)
            return ServerResponse.getSucccess(stores);
        return ServerResponse.getFail(null);
    }

}